Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি সম্পর্কিত অনেক শক্তিশালী ইউটিলিটি সরবরাহ করে। এর মধ্যে দুটি গুরুত্বপূর্ণ ক্লাস হল FileAlterationObserver এবং FileAlterationMonitor। এগুলি ফাইল সিস্টেম এর পরিবর্তন (যেমন ফাইল তৈরি, পরিবর্তন, ডিলিট) ট্র্যাক করার জন্য ব্যবহৃত হয়। এই ক্লাসগুলো ফাইল বা ডিরেক্টরির মধ্যে পরিবর্তন ঘটলে তাত্ক্ষণিকভাবে সাড়া দিতে সাহায্য করে।
FileAlterationObserver হল একটি ক্লাস যা নির্দিষ্ট ডিরেক্টরি এবং তার অধীনে থাকা ফাইলগুলির পরিবর্তন পর্যবেক্ষণ (monitor) করার জন্য ব্যবহৃত হয়। এটি একটি বা একাধিক ডিরেক্টরি পর্যবেক্ষণ করতে পারে এবং ফাইলের মধ্যে কোনো পরিবর্তন হলে তার উপর কার্যকরী কিছু অ্যাকশন নেয়।
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationEvent;
import java.io.File;
public class FileAlterationObserverExample {
public static void main(String[] args) {
// পর্যবেক্ষণ করার জন্য একটি ডিরেক্টরি নির্ধারণ
File directoryToObserve = new File("path/to/directory");
// FileAlterationObserver তৈরি করা
FileAlterationObserver observer = new FileAlterationObserver(directoryToObserve);
// পরিবর্তনগুলি শুনতে FileAlterationListener ব্যবহার করা
observer.addListener(new FileAlterationListener() {
@Override
public void onDirectoryCreate(File directory) {
System.out.println("ডিরেক্টরি তৈরি হয়েছে: " + directory.getName());
}
@Override
public void onDirectoryChange(File directory) {
System.out.println("ডিরেক্টরি পরিবর্তিত হয়েছে: " + directory.getName());
}
@Override
public void onDirectoryDelete(File directory) {
System.out.println("ডিরেক্টরি মুছে ফেলা হয়েছে: " + directory.getName());
}
@Override
public void onFileCreate(File file) {
System.out.println("ফাইল তৈরি হয়েছে: " + file.getName());
}
@Override
public void onFileChange(File file) {
System.out.println("ফাইল পরিবর্তিত হয়েছে: " + file.getName());
}
@Override
public void onFileDelete(File file) {
System.out.println("ফাইল মুছে ফেলা হয়েছে: " + file.getName());
}
});
// Observer কে পর্যবেক্ষণের জন্য শুরু করা
observer.checkAndNotify();
}
}
এখানে:
FileAlterationMonitor হল একটি ক্লাস যা FileAlterationObserver ব্যবহার করে ফাইল সিস্টেমের পরিবর্তন মনিটর করে এবং সময়ের নির্দিষ্ট সীমার মধ্যে পর্যবেক্ষণ করার জন্য এটি ইভেন্ট গুলি ট্রিগার করে। এটি সিস্টেমের কার্যকারিতা উন্নত করতে ব্যবহৃত হয়, কারণ এটি periodic checking এর মাধ্যমে ফাইল সিস্টেম পরিবর্তনগুলি পর্যবেক্ষণ করে।
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationEvent;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import java.io.File;
public class FileAlterationMonitorExample {
public static void main(String[] args) throws Exception {
// পর্যবেক্ষণ করার জন্য একটি ডিরেক্টরি নির্ধারণ
File directoryToObserve = new File("path/to/directory");
// FileAlterationObserver তৈরি করা
FileAlterationObserver observer = new FileAlterationObserver(directoryToObserve);
// FileAlterationListener যোগ করা
observer.addListener(new FileAlterationListener() {
@Override
public void onDirectoryCreate(File directory) {
System.out.println("ডিরেক্টরি তৈরি হয়েছে: " + directory.getName());
}
@Override
public void onDirectoryChange(File directory) {
System.out.println("ডিরেক্টরি পরিবর্তিত হয়েছে: " + directory.getName());
}
@Override
public void onDirectoryDelete(File directory) {
System.out.println("ডিরেক্টরি মুছে ফেলা হয়েছে: " + directory.getName());
}
@Override
public void onFileCreate(File file) {
System.out.println("ফাইল তৈরি হয়েছে: " + file.getName());
}
@Override
public void onFileChange(File file) {
System.out.println("ফাইল পরিবর্তিত হয়েছে: " + file.getName());
}
@Override
public void onFileDelete(File file) {
System.out.println("ফাইল মুছে ফেলা হয়েছে: " + file.getName());
}
});
// FileAlterationMonitor তৈরি করা, এখানে 10 সেকেন্ড পর পর পর্যবেক্ষণ করবে
FileAlterationMonitor monitor = new FileAlterationMonitor(10000, observer);
// Monitor চালু করা
monitor.start();
// কিছু সময় পর, পর্যবেক্ষণ বন্ধ করা (উদাহরণস্বরূপ 30 সেকেন্ড পরে)
Thread.sleep(30000);
monitor.stop();
}
}
এখানে:
আউটপুট:
ফাইল তৈরি হয়েছে: example.txt
ফাইল পরিবর্তিত হয়েছে: example.txt
FileAlterationObserver এবং FileAlterationMonitor ক্লাসগুলি Apache Commons IO লাইব্রেরির গুরুত্বপূর্ণ অংশ, যা ফাইল এবং ডিরেক্টরি সিস্টেমের মধ্যে real-time পরিবর্তন সনাক্ত করতে ব্যবহৃত হয়। FileAlterationObserver ক্লাসটি ফাইল সিস্টেমের পরিবর্তন পর্যবেক্ষণ করে, এবং FileAlterationMonitor ক্লাসটি নির্দিষ্ট সময় পর পর FileAlterationObserver কে checkAndNotify() মেথডের মাধ্যমে ফাইল সিস্টেমে পরিবর্তনগুলোর সনাক্তকরণ করতে সাহায্য করে। এটি ফাইল সিস্টেমের নিরাপত্তা, পরিবর্তন ট্র্যাকিং এবং অটোমেটেড ডেটা ম্যানেজমেন্ট ব্যবস্থার জন্য অত্যন্ত কার্যকরী।
common.read_more